package com.zhanghe.study.study_scala.file


import scala.io.{BufferedSource, Source}

/**
 * @author zh
 * @date 2023/7/2 21:12
 */
object TestFile {

  def main(args: Array[String]): Unit = {
    // -----文件读取----
//    val source: BufferedSource = Source.fromFile("/Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src/main/scala/com/zhanghe/study/study_scala/oop/TestImplicit.scala", "UTF-8")
    // 读取行
//    val value: Iterator[String] = source.getLines()
//    // 输出每行
//    for (line <- value) {
//      println(line)
//    }
    // 输出整个文件内容
//    println(source.mkString)

    // shell命令执行
    // process包中包含了一个从字符串到ProcessBuilder对象的隐式转换
    // !操作的就是ProcessBuilder对象，返回的结果是执行程序的返回值
    import sys.process._
    "ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src"!
    // 如果使用!!，会以字符串的形式返回
    val str = "ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" !!;
    println(str)

    // 还支持管道来将结果传递到另一个程序  #|就是管道符
    "ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" #| "grep main" !

    import java.io.File

    // #> 输出重定向到文件
    "ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" #> new File("output.txt")!

    // #>> 输出重定向到文件,追加
    "ls -al /Users/zhanghe/Desktop/user/myself/GitProject/scala_study/src" #>> new File("output.txt")!

    // #< 从文件输出
    "grep main" #< new File("output.txt")!

  }


}
